/*
 * @(#)PersonName.java
 * Date 2013-08-08
 * Version 1.0
 * Author Jim Horner
 * Copyright (c)2012
 */


package us.hornerscorners.lamppost.model.patient;

import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;

import us.hornerscorners.lamppost.model.common.CodedElement;


/**
 *
 * @author jim
 *
 * PN
 *
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class PersonName {

    /** Field description */
    private String firstName;

    /** Field description */
    private String lastName;

    /** Field description */
    private final List<String> middleNames;

    /** Field description */
    private String prefix;

    /** Field description */
    private CodedElement purpose;

    /** Field description */
    private String suffix;

    /**
     * Constructs ...
     *
     */
    public PersonName() {

        super();

        this.middleNames = new ArrayList<>();
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public String getFirstName() {
        return firstName;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public String getLastName() {
        return lastName;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public List<String> getMiddleNames() {
        return middleNames;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public String getPrefix() {
        return prefix;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public CodedElement getPurpose() {
        return purpose;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public String getSuffix() {
        return suffix;
    }

    /**
     * Method description
     *
     *
     * @param firstName
     */
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    /**
     * Method description
     *
     *
     * @param lastName
     */
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    /**
     * Method description
     *
     *
     * @param prefix
     */
    public void setPrefix(String prefix) {
        this.prefix = prefix;
    }

    /**
     * Method description
     *
     *
     * @param purpose
     */
    public void setPurpose(CodedElement purpose) {
        this.purpose = purpose;
    }

    /**
     * Method description
     *
     *
     * @param suffix
     */
    public void setSuffix(String suffix) {
        this.suffix = suffix;
    }
}
